package cn.iocoder.yudao.module.erp.controller.admin.departquantity.vo;

import cn.hutool.core.date.DateTime;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 带量分配新增/修改 Request VO")
@Data
public class DepartQuantitySaveReqVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22800")
    private Long id;

    @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7119")
    @NotNull(message = "产品编号不能为空")
    private Long productId;

    @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @NotEmpty(message = "产品名称不能为空")
    private String productName;

    @Schema(description = "产品条码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "产品条码不能为空")
    private String barCode;

    @Schema(description = "产品分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12130")
    @NotNull(message = "产品分类编号不能为空")
    private Long categoryId;

    @Schema(description = "单位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13747")
    @NotNull(message = "单位编号不能为空")
    private Integer unitId;

    @Schema(description = "产品规格")
    private String standard;

    @Schema(description = "科室编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23069")
    private Long deptId;

    @Schema(description = "带量数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "27315")
    private Long count;

    @Schema(description = "部门列表")
    private List<DeptDO> depts;

    @Schema(description = "带量总数")
    private String quantityCount;

    @Schema(description = "年份", requiredMode = Schema.RequiredMode.REQUIRED)
    private DateTime year;

    @Schema(description = "分配状态")
    private Integer allocationStatus;

    @Schema(description = "带量任务起始时间")
    private LocalDateTime  taskStartTime;
    @Schema(description = "带量任务截止时间")
    private LocalDateTime  taskEndTime;

}